/**
 * 
 */
package com.google.code.netz.wfe.events;

import com.google.code.netz.wfe.model.Transition;

/**
 * This models the Transition events internal to the workflow engine.
 * <p>
 * The idea behind this is that lifecycle changes to an entity's state can be
 * modeled as an internal transition.
 * 
 * @author <a href='mailto:rahul.thakur.xdev@gmail.com'>Rahul Thakur</a>
 * @since 1.0
 * @version $Id: InternalTransitionEvent.java 17 2009-02-09 13:08:49Z rahul.thakur.xdev $
 */
public class InternalTransitionEvent<T extends Transition<?>, E extends TypedEvent> extends TypedEvent<T> {

	/**
	 * Event wrapped by this Transition event.
	 */
	private E wrappedEvent;

	/**
	 * 
	 * @param source
	 * @param type
	 */
	public InternalTransitionEvent(T source, IEventType type, E wrappedEvent) {
		super(source, type);
		this.wrappedEvent = wrappedEvent;
	}

	/**
	 * @return the wrappedEvent
	 */
	public E getWrappedEvent() {
		return wrappedEvent;
	}

}
